草庐IT

【Example】C++ 标准库 std::atomic 及 std::memory_order

全部标签

c++ - 在 Linux 上 boost windows_shared_memory

您好,我需要在Linux上构建一个项目,但它使用“boost/interprocess/windows_shared_memory.hpp”有什么方法可以在linux上运行它,或者我必须重写这段代码?谢谢 最佳答案 我认为你只需要使用#include而不是boost/interprocess/windows_shared_memory.hpp。这将处理Windows和Linux。 关于c++-在Linux上boostwindows_shared_memory,我们在StackOverfl

javascript - NodeJS、Windows、wmic 标准输入

我在NodeJS中遇到Windows程序WMIC.exe(用于查询WindowsManagementInstrumentation)的问题。我可以生成一个wmic.exe进程,但它不会输出任何内容或接受任何输入。但是,如果我将stdin设置为null,它将正确运行并且我将收到输出。varspawn=require('child_process').spawn;varwmic=spawn('wmic',[],{stdio:['ignore']});wmic.stdout.on('data',function(data){console.log('Datareceived:'+data);

windows - ld MinGW 链接到标准 C 库

我对以下代码有疑问。externprintfglobal_mainmain:pushmsgcallprintfretmsgdb"Helloworld",0我使用nasm-fwin32test.asm将它与NASM组装起来,然后我使用ldtest.obj链接它。它告诉我“test.obj:test.asm:(text+0x6):undefinedreferenceto'printf'”如何将我的文件链接到标准C库?我有来自最新MinGW的ld。 最佳答案 汇编代码:nasm-fwin32test.asmMicrosoft将在使用cde

c++ - 与 VS2013 相比,gcc 4.7.2 中的 std::map 实现效率非常低?

有人可以帮我理解std::map容器是如何实现的吗?我有一个包含原子成员的类,我不需要调用复制构造函数,所以我使用c++11delete运算符来抑制复制构造函数的隐式生成。MyCalss(constMyClass&a)=delete;这在我的Windows构建中运行良好,但是在Linux中,我收到一条错误消息,通知我std::map类的[]运算符正在尝试调用已删除的函数。在WindowsVS2013和LinuxGCC4.7.xmap实现之间似乎存在重大差异。这促使我做了一个关于如何将对象插入map的实验。我写了这个小示例程序:#include#include#include#inclu

c++ - 有没有办法确定标准输出是否指向控制台?

我想在Windows上运行的C++应用程序中插入代码,以确定stdout(或cout)是否指向控制台,如果是,则在写出之前将字符转换为终端编码。如果不是(例如,如果写入文件或管道),字符应该单独保留。转换部分不是问题,但我想知道应用程序是否有可能知道它的标准输出是去控制台还是去其他地方。我不确定WindowsAPI函数GetStdHandle是否有任何帮助,或者它是否只是一种指向标准输出但无法确定有关它的任何信息的方法。同样,我不确定我们是否可以从cout获得任何信息来表明它是指向控制台还是其他东西。到目前为止,我还没有找到任何类似的东西。 最佳答案

windows - ANSI 转义序列不会打印到 Windows 上的标准输出

我正在尝试在Windows上使用node.js将ANSI转义序列写入标准输出,但它似乎不起作用。具体来说,我使用ConEmu哪个support一个子集ANSI代码。我创建了一个测试文件,它应该重命名当前的控制台选项卡:process.stdout.write('\x1b]9;3;"abc"\x1b\x5c');但是,当我运行它时没有任何反应。如果我运行nodetest>out.txt,正确的字节将写入输出文件。为什么转义序列不起作用? 最佳答案 当Node的标准输出连接到非交互式接收器(即通过管道或重定向到文件)时,写入proces

windows - 使用 NSIS 将应用程序文件安装到标准 Windows 用户

我有一个应用程序需要SQLite数据库才能运行。在我的NSIS脚本中,数据库被复制到用户的Local/AppData文件夹中。如果安装该程序的用户是管理员用户,这就可以正常工作。但是,如果标准用户尝试安装该程序,安装程序会要求输入管理员密码(因为标准用户无法在Windows上安装程序)并且正在安装的用户现在被切换为管理员,导致数据库安装在管理员Local/AppData文件夹中,而不是实际用户的AppData文件夹中。因此,实际上,当标准用户尝试运行该程序时,它找不到数据库。我不确定如何处理这种情况(最佳实践,如果有的话)并且找不到回答它的问题。安装程序是否应该将数据库放到公共(pub

c++ - std::chrono::system_time 的 Visual Studio 2017 CRT 实现使用什么时钟?

chrono标题中的注释只是说//wrapsGetSystemTimePreciseAsFileTime/GetSystemTimeAsFileTime但它实际使用的是什么(即我期望的精度是多少)?该实现调用_Xtime_get_ticks,但该函数是不透明的。 最佳答案 CRT在可用时调用GetSystemTimePreciseAsFileTime,否则调用GetSystemTimeAsFileTime。GetSystemTimePreciseAsFileTime为您提供highestpossiblelevelofprecisio

c# - 获取 txt 文件的标准应用程序 (.NET)

在我的应用程序中,我想打开一个没有.txt扩展名的文本文件。有没有办法在.NET(C#)中获取.txt文件的标准应用程序?当然,我可以使用“记事本”,但可能有些人(比如我)更喜欢其他(他们的标准)编辑器。编辑:注册表项“[HKEY_CLASSES_ROOT]\txtfile\shell\open\command”引用记事本,但这不是我的txt文件的标准应用程序。如何获取我当前的.txt标准应用程序? 最佳答案 绝对最好的选择是使用ShellExecuteEx,传递SEE_MASK_CLASSNAME标志,以打开此文件,就好像它是.t

windows - 批量标准化文件路径

有没有办法从绝对文件路径批量解析..?例如,以下批处理脚本应输出C:\Users\xyz\other\abc.txt:REMProjectdirisanabsolutepath,forexample,C:\Users\xyz\project\SETprojectDir=%~1REMTargetfileisapathrelativetotheprojectdir,forexample,..\other\abc.txtSETtarget=%~2REMConcatenatepaths.ThisbecomesC:\Users\xyz\project\..\other\abc.txtSETabs